// 天 / 时  / 分  / 秒
function dateformat(micro_second, t) {
  //t 1有天数
  let time = {}
  // 总秒数
  var second = Math.floor(micro_second / 1000);
  // 小时
  time.hour = t == 1 ? (Math.floor(second / 3600 % 24) < 10 ? "0" + Math.floor(second / 3600 % 24) : Math.floor(second / 3600 % 24)) : (Math.floor(second / 3600) < 10 ? "0" + Math.floor(second / 3600) : Math.floor(second / 3600));
  // 分钟
  time.minute = Math.floor(second / 60 % 60);
  // 秒
  time.second = Math.floor(second % 60);
  return time;
}

//  时  / 分  / 秒
function checktime(t) {
  if (t < 10) {
    t = '0' + t;
  }
  return t;
}
// 时分秒
function date_time(date) {
  let time = {}
  // 总秒数
  time.hour = date.getHours()
  time.minute = date.getMinutes()
  time.second = date.getSeconds()
  return time;
}



// 计算两个经纬度之间的距离
const getDistance = (lat1, lng1, lat2, lng2) => {
  lat1 = parseFloat(lat1);
  lng1 = parseFloat(lng1);
  lat2 = parseFloat(lat2);
  lng2 = parseFloat(lng2);

  function getRad(d) {
    var PI = Math.PI;
    return d * PI / 180.0;
  }

  var f = getRad((lat1 + lat2) / 2);
  var g = getRad((lat1 - lat2) / 2);
  var l = getRad((lng1 - lng2) / 2);
  var sg = Math.sin(g);
  var sl = Math.sin(l);
  var sf = Math.sin(f);
  var s, c, w, r, d, h1, h2;
  var a = 6378137.0; // WGS84椭球半径 
  var fl = 1 / 298.257;
  sg = sg * sg;
  sl = sl * sl;
  sf = sf * sf;
  s = sg * (1 - sl) + (1 - sf) * sl;
  c = (1 - sg) * (1 - sl) + sf * sl;
  w = Math.atan(Math.sqrt(s / c));
  r = Math.sqrt(s * c) / w;
  d = 2 * w * a;
  h1 = (3 * r - 1) / 2 / c;
  h2 = (3 * r + 1) / 2 / s;
  var distance = d * (1 + fl * (h1 * sf * (1 - sg) - h2 * (1 - sf) * sg));
  if (isNaN(distance)) {
    return '';
  }
  if (distance > 1000) {
    return (distance / 1000).toFixed(2) + 'km';
  } else {
    return distance.toFixed(2) + 'm';
  }
}

//转化成小程序
module.exports = {
  date_time: date_time, //时间戳转换成日期时间
  dateformat: dateformat, //时间戳转换成日期时间
  getDistance: getDistance
}